import { message } from 'antd';
import { request } from 'umi';

/**
 * 请求
 * @param path        接口名称
 * @param parameter   参数
 * @param methods     请求方式
 */
export function api(path: string, parameter: Record<string, any>, methods: string = 'POST') {

    // 发出请求
    return request(path, {
        method: methods,
        // 直接用原始参数
        data: parameter,
        responseType: 'json', // default
        headers: {},
    }).then((res: any) => {
        const { code, data, msg } = res;

        // 错误处理
        if (code !== 20000) {
            switch (code) {
                case '40009':
                case '40007':
                case '40005':
                case '40004':
                    break;
                default:
                    message.error((msg ? msg : data) || '操作失败');
            }
            return Promise.reject(res);
        }

        return Promise.resolve(data);
    });
}
